#include <iostream>
#include <queue>
#include <map>
#include <unordered_map>
#include <vector>
#include <algorithm>
#include <cmath>
#include <string>
#include <cstring>
#include <set>
#include <unordered_set>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> pii;
const int INF=0x3f3f3f3f;
int a[5];
int main()
{
	int n,m;
	cin>>n>>m;
	for(int i=0;i<m;i++)
	{
		cin>>a[i];
	}
	sort(a,a+m);
	if(n>=3 && m==1)
	{
		cout<<"Ginger666";
		return 0;
	}
	if(n%3==0)
	{
		cout<<n/3*(a[0]*2+a[1]);
	}
	if(n%3==2)
	{
		cout<<n/3*(a[0]*2+a[1])+a[0]+a[1];
	}
	else
	{
		if(n==2)
		{
			cout<<a[0]+a[1];
		}
		else
		{
			int k=n/3-1;
			k=max(k,0);
			cout<<k*(a[0]*2+a[1])+2*(a[0]+a[1]);
		}
	}
	

	return 0;
}

